/*
 * Created by LiuYou on 2020/11/26.
 *
 */

#ifndef EFFECTIVECPP_PC_HPP
#define EFFECTIVECPP_PC_HPP

/******************************************************************************
 * 实践成功！！！！
 #include <memory>
//#include "PcImpl.hpp"

#include "Pcfwd.hpp"
//class PcImpl;
 *****************************************************************************/

#include <memory>
#include "Pcfwd.hpp"

class Pc {
private:
    explicit Pc(const std::shared_ptr<PcImpl>& pImpl);

    const std::shared_ptr<PcImpl>& getPImpl() const;

public:
    // pass by reference
    Pc(int pcId, int lifetime, const GraphicsCard& graphicsCard);

    int getPcId() const;

    int getLifeTime() const;

    const GraphicsCard& getGraphicsCard() const;

private:
    std::shared_ptr<PcImpl> pImpl;

//private:
//    GraphicsCard graphicsCard;


};


#endif //EFFECTIVECPP_PC_HPP
